package laboratorioV.grupo21.tp4.IO;


import laboratorioV.grupo21.tp4.deposito.Deposito;
import laboratorioV.grupo21.tp4.productos.Producto;
import laboratorioV.grupo21.tp4.productos.UbicacionProducto;

public class Ubicacion {
	
	public Integer espacioDisponible(UbicacionProducto pUbicacionProd, Deposito deposito)
	{
		/*
		 * En el deposito recibido, busca cuantos espacios disponibles quedan en la ubicacion recibida
		 * retorna la cantidad de espacios disponibles
		 */
		try {
			Integer X = pUbicacionProd.getFila();
			Integer Y = pUbicacionProd.getColumna();
			Integer cantMaxima = null;
			Integer stockActual = null;
			Integer cantDisponible = null;
			
			if( pUbicacionProd.getLado().equals("D") == true){
				cantMaxima = deposito.getPasillo(pUbicacionProd.getPasillo()).getLadoDer().getLadoDeCompartimentos().getElement(X, Y).getCantidadMaxima();
				stockActual = deposito.getPasillo(pUbicacionProd.getPasillo()).getLadoDer().getLadoDeCompartimentos().getElement(X, Y).getStockActual();
				cantDisponible = (cantMaxima - stockActual);
			}
			else if(pUbicacionProd.getLado().equals("I") == true){
				cantMaxima = deposito.getPasillo(pUbicacionProd.getPasillo()).getLadoDer().getLadoDeCompartimentos().getElement(X, Y).getCantidadMaxima();
				stockActual = deposito.getPasillo(pUbicacionProd.getPasillo()).getLadoDer().getLadoDeCompartimentos().getElement(X, Y).getStockActual();
				cantDisponible = (cantMaxima - stockActual);			
			}
			return cantDisponible;
			
		} catch (Exception e) {
			System.out.println("No se pudo encontrar espacio disponible debido a un error");
		}
					
		return -1;		
	}
	
	public boolean disponible (Deposito pDeposito,Producto pProducto, Integer pCantidad)
	{
		return false;
	}
}
